package Clases;

import java.sql.*;
import javax.swing.JOptionPane;



public class Personal{
	private String LOGIN_PERSONAL;
	private String CLAVE_PERSONAL;
	private String NOMBRE_PERSONAL;
        private int CARGO_PERSONAL;
        conectate con;


	/** Crea un nueva instancia de la clase usuario */
	public Personal(){
          con = new conectate();
        }
        
        
        public Personal verificarUsuario(String login, String pass){
        Personal u=null;
        Connection cn=null;
        PreparedStatement pr=null;
        ResultSet rs=null;
        try{
            conectate c=new conectate();
            cn=c.getConnection();
            String sql="SELECT * FROM PERSONAL WHERE LOGIN_PERSONAL=? AND CLAVE_PERSONAL=?";
            pr=cn.prepareStatement(sql);
            pr.setString(1, login);
            pr.setString(2, pass);
            rs=pr.executeQuery();
            while(rs.next()){
                u=new Personal();
                u.setLOGIN_PERSONAL(rs.getString("LOGIN_PERSONAL"));
                u.setCLAVE_PERSONAL(rs.getString("CLAVE_PERSONAL"));
                u.setNOMBRE_PERSONAL(rs.getString("NOMBRE_PERSONAL"));
                u.setCARGO_PERSONAL(rs.getInt("CARGO_PERSONAL"));
                break;
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, e);
            u=null;
        }finally{
            try{
                rs.close();
                pr.close();
                rs.close();
            }catch(SQLException e){
                JOptionPane.showMessageDialog(null, e);
            }
        }
        return u;
    }
                
                 public void NuevoPersonal(String login, String pass, String nombre, int cargo){
       try {            
            PreparedStatement pstm = con.getConnection().prepareStatement("insert into " + 
                    "PERSONAL(LOGIN_PERSONAL, CLAVE_PERSONAL, NOMBRE_PERSONAL, CARGO_PERSONAL) " +
                    " values(?,?,?,?)");            
            pstm.setString(1, login);
            pstm.setString(2, pass);
            pstm.setString(3, nombre);                        
            pstm.setInt(4, cargo);                        
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println(e);
      }
   }

 /*obtenemos todos los datos de la tabla*/
public Object [][] getDatos(){
      int registros = 0;
      //obtenemos la cantidad de registros existentes en la tabla
      try{         
         PreparedStatement  pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM PERSONAL ");
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
      }
      
    Object[][] data = new String[registros][4];  
    //realizamos la consulta sql y llenamos los datos en "Object"
      try{    
         PreparedStatement  pstm = con.getConnection().prepareStatement("SELECT " +
            "LOGIN_PERSONAL, CLAVE_PERSONAL, NOMBRE_PERSONAL, CARGO_PERSONAL" +
            " FROM PERSONAL" +
            " ORDER BY CARGO_PERSONAL ");
         ResultSet res = pstm.executeQuery();
         int i = 0;
         while(res.next()){
            String estCodigo = res.getString("LOGIN_PERSONAL");
            String estNombre = res.getString("CLAVE_PERSONAL");
            String estpaterno = res.getString("NOMBRE_PERSONAL");
            String estmaterno = Integer.toString(res.getInt("CARGO_PERSONAL"));
            data[i][0] = estCodigo;            
            data[i][1] = estNombre;            
            data[i][2] = estpaterno;            
            data[i][3] = estmaterno;            
            i++;
         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 }   
 
    public void deletePersonal(String login){  
            try {                
                PreparedStatement pstm = con.getConnection().prepareStatement("delete from PERSONAL where LOGIN_PERSONAL = ?");            
                pstm.setString(1, login);                   
                pstm.execute();
                pstm.close();            
            }catch(SQLException e){
            System.out.println(e);
            }            
    }
    
    public void updatePersonal(String login, String clave, String nombre, int cargo){
       try {            
            PreparedStatement   pstm = con.getConnection().prepareStatement("update PERSONAL " +
            "set LOGIN_PERSONAL = ? ," +
            "CLAVE_PERSONAL = ? ," +
            "NOMBRE_PERSONAL = ? ," +                    
            "CARGO_PERSONAL = ? " +     
            "where LOGIN_PERSONAL = ? ");                    
            pstm.setString(1, login);                   
            pstm.setString(2, clave);
            pstm.setString(3, nombre);
            pstm.setString(4,String.valueOf(cargo));
            pstm.setString(5, login);
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println(e);
      }
   }
    
    
        public void updateContraseña(String login,String pass){
       try {            
            PreparedStatement   pstm = con.getConnection().prepareStatement("update PERSONAL " +
            "set CLAVE_PERSONAL = ? " +   
            "WHERE LOGIN_PERSONAL = ? ");                    
            pstm.setString(1, pass);                   
            pstm.setString(2, login);
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println(e);
      }
   }

    public int getCARGO_PERSONAL() {
        return CARGO_PERSONAL;
    }

    public void setCARGO_PERSONAL(int CARGO_PERSONAL) {
        this.CARGO_PERSONAL = CARGO_PERSONAL;
    }
        

    /** Metodos GET de la clase PERSONAL */
    public String getLOGIN_PERSONAL() {
        return LOGIN_PERSONAL;
    }

    public void setLOGIN_PERSONAL(String LOGIN_PERSONAL) {
        this.LOGIN_PERSONAL = LOGIN_PERSONAL;
    }

    public String getCLAVE_PERSONAL() {
        return CLAVE_PERSONAL;
    }

    public void setCLAVE_PERSONAL(String CLAVE_PERSONAL) {
        this.CLAVE_PERSONAL = CLAVE_PERSONAL;
    }

    public String getNOMBRE_PERSONAL() {
        return NOMBRE_PERSONAL;
    }

    public void setNOMBRE_PERSONAL(String NOMBRE_PERSONAL) {
        this.NOMBRE_PERSONAL = NOMBRE_PERSONAL;
    }

   
   
}